package com.common.app.utls.network.gson

import com.google.gson.*
import java.lang.Exception
import java.lang.NumberFormatException
import java.lang.reflect.Type

/**
 *
 * 作者：sosou
 *
 * 版本：1.0
 *
 * 创建日期：14/10/2022
 *
 * 描述：
 *
 * 修订历史：
 *
 */
class IntegerDefault0Adapter : JsonSerializer<Int>, JsonDeserializer<Int> {
    @Throws(JsonParseException::class)
    override fun deserialize(json: JsonElement, typeOfT: Type?, context: JsonDeserializationContext?): Int {
        try {
            if (json.asString == "" || json.asString == "null") { //定义为int类型,如果后台返回""或者null,则返回0
                return 0
            }
        } catch (ignore: Exception) {
        }
        return try {
            json.asInt
        } catch (e: NumberFormatException) {
            throw JsonSyntaxException(e)
        }
    }

    override fun serialize(src: Int?, typeOfSrc: Type?, context: JsonSerializationContext?): JsonElement? {
        return JsonPrimitive(src)
    }
}
